Programming languages cont.

Classification of programming languages:

compiled languages interpreted languages
C, C++, Rust, Assembly Java, Python, JavaScript, C#
advantages advantages
speed (of execution, not compilation) convenience - portability/not linked to architecture
some programs require executables (close-to-metal) disadvantages
disadvantages slow due to overhead of interpreter
platform-dependent/not portable

CPU cores

To make CPUs faster, initial method was to increase frequency. But after we reached the physical limits of frequency, turned to CPU cores - add "more CPUs"

A single CPU has multiple cores

A CPU core is an independent instruction execution unit within the CPU

Think of CPU as having little sub-CPUs - those are its cores

Each core has its own registers, instruction pipeline, etc.

Terminology - dual-core, quad-core, octa-core...

In our course by default, we discuss single-core CPUs

(end of "reminder" section, now we begin the performance section)

Performance

Things that impact performance: